package com.bx.implatform.portal.entity;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;

@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "待办/待阅对象")
public class TodoEntity {

    /**
     * 创建者userId
     */
    @Schema(description = "创建者userId")
    private String operatorId;
    /**
     * 业务系统侧的唯⼀标识任务id
     */
    @Schema(description = "业务系统侧的唯⼀标识任务id")
    private String sourceId;
    /**
     * 待办标题
     */
    @Schema(description = "待办标题")
    private String subject;
    /**
     * 待办描述
     */
    @Schema(description = "待办描述")
    private String description;
    /**
     * 截⾄时间 （时间戳 单位 毫秒）
     */
    @Schema(description = "截⾄时间 （时间戳 单位 毫秒）")
    private Long dueTime;
    /**
     * 执⾏者的userId，最⼤数量500
     */
    @Schema(description = "执⾏者的userId，最⼤数量500")
    private List<String> executorIds;


    /**
     * 待办详情地址
     */
    @Schema(description = "待办详情地址")
    private DetailUrlVo detailUrlVo;
    /**
     * 优先级，取值：
     * 10：较低
     * 20：普通（默认）
     * 30：紧急
     * 40：⾮常紧急
     */
    @Schema(description = "优先级，取值：10：较低，20：普通（默认），30：紧急，40：⾮常紧急")
    private Integer priority;
    /**
     * 待办的业务类型，⽬前⽀持两种：
     * TODO: 待办业务类型
     * READ：待阅业务类型
     */
    @Schema(description = "待办的业务类型，⽬前⽀持两种：TODO: 待办业务类型，READ：待阅业务类型")
    private String todoType;


    /**
     * 参与者
     */
    @Schema(description = "参与者")
    private List<String> participantIds;

    /**
     * pc端url跳转方式
     */
    @Schema(description = "pc端url跳转方式，取值：\n" +
            "slide：侧边栏打开（默认）\n" +
            "workbench：工作台打开\n" +
            "browser：浏览器打开")
    private String openType;
    /**
     * 待办详情地址
     */
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    @Schema(description = "待办详情地址")
    static class DetailUrlVo {
        @Schema(description = "PC端详情⻚url跳转地址。")
        private String pcUrl;
        @Schema(description = "APP端详情⻚url跳转地址。")
        private String appUrl;
    }
}
